package com.factory;

public class FactoryTest {
 
	public static void main(String[] args) {
		//普通工厂模式
		SendFactory factory = new SendFactory();
		Sender sender = factory.produce("sms");
		sender.Send();

		Sender mail = factory.produce("mail");
		mail.Send();

		//多个工厂方法模式
		SendFactory2 f = new SendFactory2();
		Sender sf = f.produceMail();
		sf.Send();

		//静态工厂方法模式
		sender = SendFactoryStatic.produceMail();
		sender.Send();

		sender = SendFactoryStatic.produceSms();
		sender.Send();
		sender.Send();
		//好处：客户端不需要创建对象，明确了各个类的职责
		//缺点：该工厂类负责创建所有实例，如果有新的类加入，需要不断的修改工厂类，不利于后期的维护
	}
}